
# 异常和错误
"""
代码的运行逻辑 ：
1. 先检查代码的语法格式 ，若出现问题，直接报错 (错误)
2. 运行代码
    1） 正常运行
    2） 可能报错的地方(异常) ，处理方式有 ：
        （1） 事后处理，没有考虑到 ，往往是产生bug的地方
        （2） 事前处理 ，

错误 ：编写的代码触发了python硬性规定 ， 在编辑器中有红的波浪线
    比如 ： 不能使用关键字定义变量名 ，缩进问题 ，传递数量不一致

异常处理的方式：
try:
    可能报错的代码块
except:
    进行处理的动作

异常类型 ：
1 .异常的错误类型主要目的可以更准确的定位问题 。
2. 报什么错，把它加入到except异常中

如何处理异常 ？
    1. 你知道的情况，你自己去处理 ，往往都是给出错误提示 ，
    2.  直接抛出异常，raise

finally:        在此代码块内的代码会始终被执行 ，往往写的都是关闭资源。

"""
f = None
filename = 'a.txt'
try:
    # 1. 打开文件
    f = open(filename,encoding='utf-8')
    # 2. 读取文件
    content = f.read()
    print(type(content))
    print(content)
except FileNotFoundError as e:
    print("文件不存在，请检查文件路径或者文件名")
    print(e)
except UnicodeDecodeError as e:
    print("文件编码错误 ，请检查文件中是否有其它乱码")
except Exception as e:
    raise '未知错误'
finally:
    if f:
        f.close()

print("hello world")

# 3. 关闭文件



